CONTENTS | INDEX | PREV | NEXT
PlaceRexxCommandDirect
FUNCTION
Send an ARexx command to an Application (DICE)
SYNTAX
#include <lib/rexx.h>
rc = PlaceRexxCommandDirect(port, apport,str, &res, &ec);
struct MsgPort *port;
char *apport;
char *str;
char *res;
long ec;
DESCRIPTION
PlaceRexxCommandDirect sends an ARexx command to a specification
application (compare to PlaceRexxCommand which talks to ARexx
directly). The command is normally a script file to run. You must
specify the ARexx port that is to act as the default host port for
the command or NULL to use DICE's default port. The default extension
for the script is always the RexxHostName variable. Note that if you
specify NULL for the port to use DICE's default, then you must have
previously setup DICE's default port. This occurs automatically if
RexxHostName was declared non-NULL, or manually if you had called
Create[Global]DiceRexxPort(NULL, "name").
You supply the command in str which is made Arg0. Currently there is
no support for additional arguments. DICE will run the command
synchronously and return the result code.
The result string pointer will be set to either NULL or a malloc()'d
string. If you wish to ignore any result you may pass NULL for
this argument.
|| NOTE: If you do not pass NULL, you are responsible for free()ing
|| the result string when you are through with it!
The ec longword will be set to an internal ARexx error code... if the
returned result code is non-zero and ec == 1 then ARexx was unable to
find the specified ARexx command. You may pass NULL for this
argument if you do not care about the error code.
It is possible that your program will receive ARexx commands while it
is waiting for the command you have sent to be returned. DICE will
automatically call DoRexxCommand() from within the PlaceRexxCommand()
routine when this case occurs.
ARexx will set the error-code ec, which is different from the
result-code. ec is set to 1 if the script could not be found. ARexx
normally returns a severity code of 5 for this case. If the return
code is 0 then ec will be 0.
INPUTS
struct MsgPort *port;
Message port for processing. Typically you pass
NULL to use the default port.
char *apport; Name of application to send commands to.
char *str; String to be passed to ARexx for execution
char **res; Pointer to place to store result string from
ARexx. NULL indicates no result is desired.
long *ec; Pointer to place to store error code from ARexx.
Set to 1 for script not found. NULL indicates no
result code desired.
RESULTS
int rc; Return code from ARexx